function uniqueObjects(array) {
    // 创建一个Map对象来存储已经遇到过的对象
    const seen = new Map();

    // 使用filter方法过滤数组
    return array.filter(item => {
        // 将对象转换为JSON字符串
        const serializedItem = JSON.stringify(item);

        // 检查这个字符串是否已经在seen中
        if (seen.has(serializedItem)) {
            // 如果已经存在，返回false，表示这个对象不是唯一的
            return false;
        }

        // 如果不存在，将这个字符串添加到seen中，并返回true，表示这个对象是唯一的
        seen.set(serializedItem, true);
        return true;
    });
}

// 示例使用
const objects = [
    { id: 1, name: 'Kimi' },
    { id: 2, name: 'AI' },
    { id: 1, name: 'Kimi' }, // 这个对象与第一个对象完全相同
    { id: 3, name: 'Chat' }
];

console.log(uniqueObjects(objects));